<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <!-- 
        1. 自执行函数
            格式1: (function(){})()     (使用频率较高)
            格式2: (function(){}())
            格式3: !function(){}()


            特性: 
             * 定义完函数时, 就立马自我调用
             * 无需取名 (匿名)
             * 私有作用域 (从而避免变量污染, 在有些编程中, 也被称之为"匿名包裹器" or "命名空间") 
            

             变量污染: 前后两个变量名相同, 后面的变量覆盖前面了的变量 ( 常出现在多人开发中, 后面的人不小心覆盖前面人写的变量 )
    -->

    <script>
        (function(){
            console.log('第一种自执行');
        })();

        (function(){
            console.log('第二种自执行');
        }());

        !function(){
            console.log('第三种自执行');
        }
    </script>

    <script>
        var name = '小姚';
        (function (x){
            console.log('我的名字是:' + x);
        })(name);
    </script>

    <script>
        var name = '找事软件';
        var name = '小赵';

        console.log( name );
        console.log('----------------');


        var name = '找事软件';
        (function(){
            var name = '小赵';
            console.log( name ); 
        })();
        console.log(name);
    </script>
</body>
</html>